
#ifndef  ITRANSACTION_H
#define  ITRANSACTION_H

#include "recovery/Status.h"

class ITransaction {
public:
	virtual ~ITransaction(){}
	virtual recovery::Status commit() = 0;
	virtual recovery::Status rollback() = 0;
};

/*  
class Transaction : public ITransaction<Transaction> {
public:
    Transaction & commit() override{
		return *this;
	}
    Transaction & rollback() override{
		return *this;
	}
};

class Batch : public ITransaction<Batch> {
public:
	Batch & commit() override {
		return *this;
	}
	Batch & rollback() override {
		return *this;
	}
};*/

// auto Id transaction :  class AutoTransaction : Transaction<AutoTransaction> {};
// outside id transaction: 

#endif   /* ITRANSACTION_H */
